1. Field of the Invention
The present invention generally relates to a method, system and program product for managing multiple network (e.g., web) application versions.
2. Related Art
As technology continues to improve, computer users are increasing relying on networks such as the World Wide Web to conduct personal and professional business. For example, today a computer user can pay bills, order goods/services and obtain information using any network-enabled computerized device (e.g., a personal computer, a laptop, a hand-held device, etc.). To meet this growing demand, many businesses currently provide a variety of on-line services. In general, a business that wishes to allow their customers to transact business in a network environment (e.g., on-line) must implement one or more network (e.g., web) applications. For example, if a bank wishes to offer on-line banking services to their customers, the bank must implement a web banking application on a server or the like to which the customers can connect. Once the necessary banking application is provided, the customers will establish web-based “sessions” with the banking application to conduct their banking transactions.
Unfortunately, although providing on-line capabilities to customers can prove to be a great convenience and attraction to customers, problems arise when the web applications must be updated. Specifically, many applications are regularly updated to provide additional features, an improved look and feel, etc. Deployment of a new version of a network application typically involves removal of the old version. Such removal, however, can be the cause of many problems. For example, customers that have an active session formed with the old version should continue to communicate with the old version. If the customers suddenly begin to communicate with the new version, errors in the underlying transactions could occur. Accordingly, if the old version is removed while sessions are still active, many problems could arise.
Previous attempts to address these issues often involved stopping the server on which the network application is deployed. For example, one previous attempt required stopping the server, updating the application and then restarting the server. Another attempt involved loading the new version on a different server, and then stopping the old server. Still yet another attempt involved installing the new version with a different uniform resource locator (URL) representing the application, updating the references to go to the new URL, and then stopping the old server. With any of these approaches, however, there is often a delay between server stop and start, which results in the loss of network traffic. Moreover, any users who have sessions with the old versions will see the new version when the switch happens. If there are important updates occurring with the new version, failures may result where the session “state” is not compatible between the two versions. In addition, if the URL is changed, the administrator of the server must update any other applications that reference the current application being upgraded.
In view of the foregoing, there exists a need for a method, system and program product for managing multiple network application versions. Specifically, a need exists for an existing version of a network application to be identified based on a version identifier. A further need exists for requests received pursuant to an active session between the existing network application and a user system to be accompanied with the version identifier. After a new version of the network application is deployed, a further need exists for new sessions to be established with the new version, while existing sessions with the old version continue to operate.